package com.ehsy.controller;

import com.ehsy.modo.ChatMessage;
import org.springframework.messaging.handler.annotation.DestinationVariable;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Controller;

import java.security.Principal;

@Controller
public class ChatController {

    @MessageMapping("/chat")
    @SendTo("/topic/public") // 将消息广播到订阅了"/topic/public"的主题的所有客户端
    public ChatMessage handleChatMessage(ChatMessage message, Principal principal) {
        // 这里可以对消息进行处理，例如存储、过滤或转发
        System.out.println(message);
        ChatMessage chatMessage = new ChatMessage();
        chatMessage.setContent("内容");
        chatMessage.setSender("sender");
        return chatMessage; // 返回处理后的消息
    }

    // 假设有一个获取用户唯一ID的方法getUserUniqueId()

    @MessageMapping("/private/{receiverId}")
    @SendTo("/user/{receiverId}/queue/private")
    public ChatMessage handlePrivateChat(@DestinationVariable String receiverId, ChatMessage message) {
        // 这里可以对消息进行权限验证、存储或其它处理
        // ...
        // 确保只有目标用户能收到消息
        return message;

    }
}